package com.witmore.neutron.ai.db.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.witmore.neutron.ai.db.dto.UserWithProviderDTO;
import com.witmore.neutron.ai.db.entity.UserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * neutron用户表 Mapper 接口
 * </p>
 *
 * @author 豆子高
 * @since 2025-05-15
 */
@Mapper
public interface UserMapper extends BaseMapper<UserDO> {

    /**
     * 分页查询用户列表（包含服务商信息）
     *
     * @param page         分页参数
     * @param userName     用户名（模糊查询）
     * @param userPhone    手机号（精确查询）
     * @param providerName 服务商名称（模糊查询）
     * @param activeStatus 用户状态
     * @return 用户列表（包含服务商信息）
     */
    Page<UserWithProviderDTO> selectUserListWithProvider(
            Page<?> page,
            @Param("userName") String userName,
            @Param("userPhone") String userPhone,
            @Param("providerName") String providerName,
            @Param("activeStatus") Byte activeStatus
    );
}
